// pages/search/index.js
import {
    getNavigationbar,
} from "../../api/index.js"
Page({

    /**
     * 页面的初始数据
     */
    data: {
        historyList: [],
        show: false,
        value: '',focusShow:true,
        subdata: {},
        brandList: [],
        sortedBrandList: [],
        navigateToUrl: '',
        flag: 0 // 添加flag属性
    },
    onClickLeft() {
        // debugger
        // wx.navigateBack()
        // wx.navigateBack({delta:1});
        // let pages = getCurrentPages();
        // console.log('e', pages)
        // let historyList = ''
        // let keyword = ''
        // let prevPage = pages[pages.length - 2]; // 获取上一页的页面实例
        // if (prevPage.route == 'pages/goods_list/index') {
        //     const app = getApp();
        //     console.log('this.data.flag', this.data.flag, app.globalData.historyList)
        //     historyList = app.globalData.historyList; // 修改为 
        //     this.setData({
        //         history: {
        //             ...historyList
        //         }
        //     });

        //     let data = {
        //         keyword: keyword || '',
        //         flag: this.data.flag,
        //         shipping: this.data.subdata,
        //         historyList: app.globalData.historyList // 修改为 historyList
        //     }
        //     let objStr = encodeURIComponent(JSON.stringify(data));
        //     wx.navigateTo({
        //         url: '/pages/goods_list/index?obj=' + objStr
        //     })
        // } else {
        //     // wx.navigateBack()
        // }
        // console.log('返回', prevPage)
    },
    getTabBarPage() {
        const pages = getCurrentPages();
        console.log('e', pages)
        for (let i = pages.length - 1; i >= 0; i--) {
            if (pages[i].route === 'pages/goods_list/index' || pages[i].route === 'pages/brand_detail/index') {
                return pages[i];
            }
        }
        return null;
    },
    getFlag() {
        console.log(this.data.flag);
    },
    // 输入内容变化时触发回调函数
    // 在搜索功能中保存历史搜索记录到本地缓存
    onSearch() {
        let keyword = this.data.value;
        let historyList = ''; // 修改变量名为 historyList
        if(keyword.trim() == '') {
            return
        }
        if (keyword.trim() !== '') {
            console.log('wx.getStorageSync', wx.getStorageSync('historyList'));
            historyList = wx.getStorageSync('historyList') || []; // 获取本地缓存中的历史搜索记录
            if (!historyList.includes(keyword)) {
                historyList.unshift(keyword);
                wx.setStorageSync('historyList', historyList); // 将更新后的历史搜索记录保存到本地缓存
                this.setData({
                    historyList: historyList
                });
            }
            const app = getApp();
            historyList = app.globalData.historyList; // 修改为 historyList
            this.setData({
                history: {
                    ...historyList
                }
            });
        }
        const app = getApp();
        historyList = app.globalData.historyList; // 修改为 
        this.setData({
            history: {
                ...historyList
            }
        });
        console.log('this.data.flag', this.data.flag, app.globalData.historylist)
        let data = {
            keyword: keyword || '',
            flag: this.data.flag,
            shipping: app.globalData.subdata,
            url: this.data.navigateToUrl,
            historyList: app.globalData.historylist // 修改为 historyList
        }

        let objStr = encodeURIComponent(JSON.stringify(data));
      
        if (this.data.flag == 3) {
            wx.redirectTo({
                url: '/pages/goods_list/index?obj=' + objStr
            })
        } else if (this.data.flag == 2) {
            wx.redirectTo({
                url: '/pages/brand_detail/index?obj=' + objStr
            })
        } else if (this.data.flag == 1) {
            const app = getApp();
            historyList = app.globalData.historyList; // 修改为 
            this.setData({
                history: {
                    ...historyList
                }
            });
            console.log('this.data.flag', this.data.flag, app.globalData.historyList)
            let data = {
                keyword: keyword || '',
                flag: this.data.flag,
                shipping: this.data.subdata,
                url: this.data.navigateToUrl,
                historyList: app.globalData.historyList // 修改为 historyList
            }
            let objStr = encodeURIComponent(JSON.stringify(data));
            wx.redirectTo({
                url: '/pages/goods_list/index?obj=' + objStr
            })
        } else {
            const app = getApp();
            let data = {
                keyword: keyword || '',
                flag: this.data.flag,
                shipping: false,
                url: this.data.navigateToUrl,
                historyList: app.globalData.historyList // 修改为 historyList
            }
            let objStr = encodeURIComponent(JSON.stringify(data));
            wx.redirectTo({
                url: '/pages/goods_list/index?obj=' + objStr
            })
            // wx.redirectTo({
            //     url: '/pages/goods_list/index?obj=' + objStr
            // })
            // let pages = getCurrentPages();
            // let prevPage = pages[pages.length - 2];
            // console.log("prevPage", prevPage)
            // if (this.data.flag == 1) {
            //     prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
            //         keyword: keyword,
            //     })
            // } else {
            //     prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
            //         params: objStr,
            //     })
            // }
            // wx.navigateBack({
            //     delta: 1 // 返回上一级页面。
            // })
        }
    },
    handeHistory(e) {
        console.log(e.currentTarget.dataset)
        const app = getApp();
        const historyList = app.globalData.historyList;
        console.log('historyList', historyList, this.data.flag)
        let data = {
            keyword: e.currentTarget.dataset.value,
            flag: this.data.flag,
            historyList: historyList,
            shipping: this.data.subdata,
            url: this.data.navigateToUrl,
        }
        let objStr = encodeURIComponent(JSON.stringify(data));
        if (this.data.flag == 3) {
            wx.redirectTo({
                url: '/pages/goods_list/index?obj=' + objStr
            })
        } else if (this.data.flag == 2) {
            const app = getApp();
            console.log('app', app.globalData)
            const historyList = app.globalData.historylist;
            console.log('historyList', historyList, this.data.flag)
            let data = {
                keyword: e.currentTarget.dataset.value,
                flag: this.data.flag,
                historyList: historyList,
                shipping: this.data.subdata,
                url: this.data.navigateToUrl,
            }
            let objStr = encodeURIComponent(JSON.stringify(data));
            wx.redirectTo({
                url: '/pages/brand_detail/index?obj=' + objStr
            })
        } else {
            // let pages = getCurrentPages();
            // let prevPage = pages[pages.length - 2];
            // console.log("prevPage", prevPage)
            // if (this.data.flag == 1) {
            //     prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
            //         keyword: e.currentTarget.dataset.value,
            //       })
            //   }else{
            //       prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
            //         params: objStr,
            //       })
            //   }
            // wx.navigateBack({
            //     delta: 1 // 返回上一级页面。
            // })

            wx.redirectTo({
                url: '/pages/goods_list/index?obj=' + objStr
            })
        }

    },
    // 处理删除历史搜索记录
    handleDeleteHistory(e) {
        const index = e.currentTarget.dataset.index;
        const historyList = this.data.historyList;
        historyList.splice(index, 1); // 移除对应索引的搜索记录
        this.setData({
            historyList: historyList
        });

        // 更新本地缓存中的历史搜索记录
        wx.setStorageSync('historyList', historyList);
    },
    // 输入框内容改变时触发回调函数
    onChange(e) {
        console.log('e', e)
        
        // 用户输入的关键字
        const keyword = e.detail.value;

        // 根据关键字排序品牌列表
        const sortedBrandList = this.data.brandList.sort((a, b) => {
            const similarityA = this.calculateSimilarity(a.name, keyword);
            const similarityB = this.calculateSimilarity(b.name, keyword);

            if (similarityA === 2) {
                return -1;
            } else if (similarityB === 2) {
                return 1;
            } else if (similarityA === 1 && similarityB === 0) {
                return 1;
            } else if (similarityA === 0 && similarityB === 1) {
                return -1;
            } else {
                return 0;
            }
        });

        if (e.detail.value == '') {
            this.setData({
                sortedBrandList: []
            })
        } else {
            this.setData({
                sortedBrandList: sortedBrandList
            })
        }
        this.setData({
            value: e.detail.value,
            focusShow:true
        })
        // 输出排序后的品牌列表
        console.log('输出排序后的品牌列表', sortedBrandList);
    },
    // 计算相似度的函数
    calculateSimilarity(brandName, keyword) {
        if (brandName.toLowerCase().includes(keyword.toLowerCase())) {
            return 2; // 高相似度
        } else if (brandName.toLowerCase().indexOf(keyword.toLowerCase()) !== -1) {
            return 1; // 有相似度
        } else {
            return 0; // 相似度去除
        }
    },
    /**
     * 品牌列表
     */
    getBrand() {
        getNavigationbar({
            act: 'brand_list',
            keyword: '',

        }).then(res => {
            console.log('品牌列表', res)
            this.setData({
                brandList: res
            })
        })
    },

    handlesortedt(e) {
        console.log('e', e)
        this.setData({
            value: e.currentTarget.dataset.value.name
        })
    },
    /**
     * 删除搜索历史记录回调函数方法
     */
    handleDelHistory() {
        console.log('点击')
        this.setData({
            show: true
        })
    },

    /**
     * 点击确认按钮回调函数方法
     */
    handleConfirm() {
        this.setData({
            show: false,
            historyList: []
        });
        wx.setStorageSync('historyList', []); // 清空本地缓存中的历史搜索记录
    },

    /**
     * 点击取消按钮回调函数方法
     */
    handleCancel() {
        this.setData({
            show: false
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        const fl = options.flag
        const historyList = wx.getStorageSync('historyList') || [];
        if(options.navigateToUrl == '') {
            options.navigateToUrl = 'index'
        }
        this.setData({
            historyList: historyList,
            navigateToUrl: options.navigateToUrl
        });
        this.getBrand()
        const tabBarPage = this.getTabBarPage();
        console.log('options', options, tabBarPage)
        this.data.subdata = tabBarPage.__data__.subdata.shipping
        const flag = options.flag == 3 ? 'index' : tabBarPage.__route__;
        console.log('flag', flag)
        if (flag == 'pages/goods_list/index') {
            this.setData({
                flag: 1
            });
            this.data.flag = 1
        } else if (flag == 'pages/brand_detail/index') {
            this.setData({
                flag: 2
            });
            this.data.flag = 2
        } else if (flag == 'index') {
            this.setData({
                flag: 3
            });
            this.data.flag = 3
        }
        this.getFlag();
        // 目标页面的 onLoad 函数中

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})